class OrdenesCompraController < ApplicationController
  include ImprimirOrdenCompra
  before_action :set_orden_compra, only: [:show, :edit, :update, :destroy, :oc_detalle]
  
  # GET /ordenes_compra
  # GET /ordenes_compra.json
  def index
    #@ordenes_compra = OrdenCompra.all
    @ordenes_compra = OrdenCompra.paginate(:page => params[:page], :per_page => 6)
  end

  # GET /ordenes_compra/1
  # GET /ordenes_compra/1.json
  def show
    respond_to do |format|
      format.html # show.html.erb
      format.json #{ render json: @orden_compra }
      format.pdf do
        # Send the PDF back to the browser for viewing
        send_data ImprimirOrdenCompra.draw(@orden_compra),
                  filename: "OrdenCompra.pdf",
                  type: 'application/pdf',
                  disposition: 'inline'
      end
    end
  end

  # GET /ordenes_compra/new
  def new
    @orden_compra = OrdenCompra.new
    @orden_compra.detalles_orden_compra.build
    @items = Item.all
    @proveedores = Proveedor.all
    @destinos = Destino.all
  end

  # GET /ordenes_compra/1/edit
  def edit
#    @orden_compra.detalles_orden_compra.build
    @items = Item.all
    @proveedores = Proveedor.all
    @destinos = Destino.all
  end

  # POST /ordenes_compra
  # POST /ordenes_compra.json
  def create
    @orden_compra = OrdenCompra.new(orden_compra_params)
    @orden_compra.usuario = current_usuario
    @orden_compra.Estatus = "T"
    
    respond_to do |format|
      if @orden_compra.save
        format.html { redirect_to @orden_compra, notice: 'Orden compra creado correctamente.' }
        format.json { render action: 'show', status: :created, location: @orden_compra }
      else
        format.html { render action: 'new' }
        format.json { render json: @orden_compra.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /ordenes_compra/1
  # PATCH/PUT /ordenes_compra/1.json
  def update
    respond_to do |format|
      if @orden_compra.update(orden_compra_params)
        format.html { redirect_to @orden_compra, notice: 'Orden compra actualizado correctamente.' }
        format.json { head :no_content }
      else
        format.html { render action: 'edit' }
        format.json { render json: @orden_compra.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /ordenes_compra/1
  # DELETE /ordenes_compra/1.json
  def destroy
    @orden_compra.destroy
    @orden_compra.detalles_orden_compra.destroy_all
    
    respond_to do |format|
      format.html { redirect_to ordenes_compra_url }
      format.json { head :no_content }
    end
  end
  
  def eliminar_det_orden
    @det_orden_compra = DetOrdenCompra.find(params[:id])
    @no_det = params[:no_detalle]
    @det_orden_compra.destroy
    respond_to do |format|
      format.js
    end
  end
  
  def eliminar_det_orden_temp
    @no_det = params[:no_detalle]
    respond_to do |format|
      format.js
    end    
  end
  
  def oc_detalle
    @paises = Pais.all
    @unidades_medida = UnidadMedida.all
  end
  
  def guardar_detalle_oc
    
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_orden_compra
      @orden_compra = OrdenCompra.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def orden_compra_params
      params.require(:orden_compra).permit(:proveedor_id, :FechaRegistro, :usuario_id, :EntregarA, detalles_orden_compra_attributes: [:id,:item_id, :Cantidad,:Precio,:Cliente])
    end
    
end
